package com.jisf.driver.service;

import com.jisf.driver.entity.vo.MenuListVo;
import com.jisf.driver.entity.po.Menu;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jisf.driver.response.IErrorCode;

import java.util.List;

/**
 * <p>
 * 权限表 服务类
 * </p>
 *
 * @author jisf
 * @since 2022-04-08
 */
public interface IMenuService extends IService<Menu> {

    /**
     * 获取侧边栏菜单列表
     * @return
     */
    List<MenuListVo> getMenuListAside();

    /**
     * 获取权限列表
     * @return
     */
    List<MenuListVo> menuList();

    /**
     * 整理菜单（所有菜单）
     * @param menuListVos
     * @return
     */
    List<MenuListVo> organizeMenu(List<MenuListVo> menuListVos);

    /**
     * 整理菜单
     * @param menuListVos
     * @param count 菜单级数
     * @return
     */
    List<MenuListVo> organizeMenu(List<MenuListVo> menuListVos, int count);

    /**
     * 获取所有权限
     * @return
     */
    List<MenuListVo> getAllMenus();

    /**
     * 改变权限状态
     * @param menuId
     * @param status
     * @return
     */
    IErrorCode menuChangeStatus(Integer menuId, String status);

    /**
     * 改变权限是否显示在菜单栏
     * @param menuId
     * @param visible
     * @return
     */
    IErrorCode menuChangeVisible(Integer menuId, String visible);

}
